/* eslint-disable */

import { AxiosRequestConfig } from 'axios';
import { request } from '../../utils/request';

export interface PostTempTrackPageRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    current: number;
    pageSize: number;
    total: number;
    list: Array<{
      tempAlbumName: string; // 临时专辑名
      companyName: string; // 原始版权公司, 对应 Fcompany_id
      cpName: string; // 版权公司, 对应 Fcp_id
      trackSingerList: Array<{
        id: number;
        tempTrackId: number;
        singerName: string;
        singerId: number;
        forder: number;
        picPath: string;
        picUrl: string;
        singerDesc: string;
        ddexRole: string;
        insertTime: string;
        modifyTime: string;
      }>;
      trackLyricistList: Array<{
        id: number;
        tempTrackId: number;
        singerName: string;
        singerId: number;
        forder: number;
        picPath: string;
        picUrl: string;
        singerDesc: string;
        insertTime: string;
        modifyTime: string;
      }>;
      trackComposerList: Array<{
        id: number;
        tempTrackId: number;
        singerName: string;
        singerId: number;
        forder: number;
        picPath: string;
        picUrl: string;
        singerDesc: string;
        insertTime: string;
        modifyTime: string;
      }>;
      tempTrackId: number; // 临时库歌曲ID
      kgId: number;
      kwId: number;
      umId: number;
      qqId: number;
      insertFrom: number;
      tempAlbumId: number; // 临时库专辑ID
      copyrightId: number;
      copyrightArea: string; // 授权区域
      cpRemarks: string;
      srcPaymentModeId: number;
      paymentModeId: number; // 付费模式ID
      isMain: number; // 是否主打曲: 0否  1是
      trackType: number; // 歌曲类型: 0 未知（默认） 1 独唱 2 对唱 3 合唱
      trackAttr: string; // 歌曲属性, 多个id逗号分隔
      trackName: string; // 歌曲名
      srcTrackName: string; // 官方歌曲名
      transName: string; // 翻译名
      otherName: string; // 歌曲别名
      tvName: string; // 影视名
      srcTrackInfo: string; // 原唱歌曲信息
      displayArtistName: string; // 官方歌曲歌手名
      fdesc: string; // 歌曲子标题: 对应 t_track_extend.Fsub_title
      trackDesc: string; // 歌曲描述, 对应t_track_extend.Ftrack_desc
      saleTime: string; // 发售时间
      takedownTime: string; // 下架时间
      displayTime: string; // 歌曲列表可显示时间
      onlineTime: string; // 试听片段上线时间
      isrc: string; // ISRC
      publicTime: string; // 发行时间
      duration: number; // 时长
      iswc: string; // ISWC
      trackGrid: string; // GRID
      fileType: string; // 歌曲文件类型
      fileSize: number; // 文件大小
      fileUrl: string; // 文件url
      fileMd5: string; // 文件md5
      filePath: string; // 文件cos路径
      trackId: number; // 正式库歌曲ID
      refrainStart: number; // 试听开始时间点
      refrainEnd: number; // 试听开始结束点
      fileCheck: string; // 音质检测结果
      arranger: string; // 编曲
      producer: string; // 制作
      wordAuthor: string; // 作词
      musicAuthor: string; // 作曲
      groupTitle: string; // 作品集名
      version: string; // 官方版本
      genre: string; // 官方流派
      subgenre: string; // 官方子流派
      language: number; // 语言
      companyId: number; // 原始版权公司ID
      cpId: number; // 版权公司ID
      listIndex: number; // 歌曲顺序
      ffrom: number; // 歌曲来源
      cd: number; // cd索引
      trackNumber: string; // 歌曲编号，用于结算
      insertTime: string;
      trackPline: string; // pline
      trackCline: string; // cline
      parentGuidance: string; // 家长指导内容
      modifyTime: string;
      getInReason: number; // 入审核库原因
      reviewStatus: number; // 审核状态
      reviewTime: string; // 审核时间
      reviewUser: string; // 审核人
      uploadTime: string; // 物料拉取时间
      insertTrackId: number;
    }>;
  };
  traceId: string;
}

/**
 * 分页查询
 */
export async function postTempTrackPage(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostTempTrackPageRes> {
  return request(data, {
    url: '/tempTrack/page',
    method: 'post',
    ...config,
  });
}

export interface GetTempTrackDetailTempTrackIdRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    tempAlbumName: string; // 临时专辑名
    companyName: string; // 原始版权公司, 对应 Fcompany_id
    cpName: string; // 版权公司, 对应 Fcp_id
    trackSingerList: Array<{
      id: number;
      tempTrackId: number;
      singerName: string;
      singerId: number;
      forder: number;
      picPath: string;
      picUrl: string;
      singerDesc: string;
      ddexRole: string;
      insertTime: string;
      modifyTime: string;
    }>;
    trackLyricistList: Array<{
      id: number;
      tempTrackId: number;
      singerName: string;
      singerId: number;
      forder: number;
      picPath: string;
      picUrl: string;
      singerDesc: string;
      insertTime: string;
      modifyTime: string;
    }>;
    trackComposerList: Array<{
      id: number;
      tempTrackId: number;
      singerName: string;
      singerId: number;
      forder: number;
      picPath: string;
      picUrl: string;
      singerDesc: string;
      insertTime: string;
      modifyTime: string;
    }>;
    tempTrackId: number; // 临时库歌曲ID
    kgId: number;
    kwId: number;
    umId: number;
    qqId: number;
    insertFrom: number;
    tempAlbumId: number; // 临时库专辑ID
    copyrightId: number;
    copyrightArea: string; // 授权区域
    cpRemarks: string;
    srcPaymentModeId: number;
    paymentModeId: number; // 付费模式ID
    isMain: number; // 是否主打曲: 0否  1是
    trackType: number; // 歌曲类型: 0 未知（默认） 1 独唱 2 对唱 3 合唱
    trackAttr: string; // 歌曲属性, 多个id逗号分隔
    trackName: string; // 歌曲名
    srcTrackName: string; // 官方歌曲名
    transName: string; // 翻译名
    otherName: string; // 歌曲别名
    tvName: string; // 影视名
    srcTrackInfo: string; // 原唱歌曲信息
    displayArtistName: string; // 官方歌曲歌手名
    fdesc: string; // 歌曲子标题: 对应 t_track_extend.Fsub_title
    trackDesc: string; // 歌曲描述, 对应t_track_extend.Ftrack_desc
    saleTime: string; // 发售时间
    takedownTime: string; // 下架时间
    displayTime: string; // 歌曲列表可显示时间
    onlineTime: string; // 试听片段上线时间
    isrc: string; // ISRC
    publicTime: string; // 发行时间
    duration: number; // 时长
    iswc: string; // ISWC
    trackGrid: string; // GRID
    fileType: string; // 歌曲文件类型
    fileSize: number; // 文件大小
    fileUrl: string; // 文件url
    fileMd5: string; // 文件md5
    filePath: string; // 文件cos路径
    trackId: number; // 正式库歌曲ID
    refrainStart: number; // 试听开始时间点
    refrainEnd: number; // 试听开始结束点
    fileCheck: string; // 音质检测结果
    arranger: string; // 编曲
    producer: string; // 制作
    wordAuthor: string; // 作词
    musicAuthor: string; // 作曲
    groupTitle: string; // 作品集名
    version: string; // 官方版本
    genre: string; // 官方流派
    subgenre: string; // 官方子流派
    language: number; // 语言
    companyId: number; // 原始版权公司ID
    cpId: number; // 版权公司ID
    listIndex: number; // 歌曲顺序
    ffrom: number; // 歌曲来源
    cd: number; // cd索引
    trackNumber: string; // 歌曲编号，用于结算
    insertTime: string;
    trackPline: string; // pline
    trackCline: string; // cline
    parentGuidance: string; // 家长指导内容
    modifyTime: string;
    getInReason: number; // 入审核库原因
    reviewStatus: number; // 审核状态
    reviewTime: string; // 审核时间
    reviewUser: string; // 审核人
    uploadTime: string; // 物料拉取时间
    insertTrackId: number;
  };
  traceId: string;
}

/**
 * 单个查询
 */
export async function getTempTrackDetailTempTrackId(
  tempTrackId: string | number,
  data?: any,
  config?: AxiosRequestConfig,
): Promise<GetTempTrackDetailTempTrackIdRes> {
  return request(data, {
    url: `/tempTrack/detail/${tempTrackId}`,
    method: 'get',
    ...config,
  });
}

export interface PostTempTrackQueryTempTrackSingerRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    trackSingerList: Array<{
      id: number;
      tempTrackId: number;
      singerName: string;
      singerId: number;
      forder: number;
      picPath: string;
      picUrl: string;
      singerDesc: string;
      ddexRole: string;
      insertTime: string;
      modifyTime: string;
    }>;
  };
  traceId: string;
}

/**
 * 批量查询:歌曲艺人列表
 */
export async function postTempTrackQueryTempTrackSinger(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostTempTrackQueryTempTrackSingerRes> {
  return request(data, {
    url: '/tempTrack/queryTempTrackSinger',
    method: 'post',
    ...config,
  });
}

export interface PostTempTrackSaveTempTrackSingerRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: boolean; // 返回数据
  traceId: string;
}

/**
 * 艺人匹配
 */
export async function postTempTrackSaveTempTrackSinger(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostTempTrackSaveTempTrackSingerRes> {
  return request(data, {
    url: '/tempTrack/saveTempTrackSinger',
    method: 'post',
    ...config,
  });
}

export interface PostTempTrackReviewTrackRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: boolean; // 返回数据
  traceId: string;
}

/**
 * 审核不通过
 */
export async function postTempTrackReviewTrack(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostTempTrackReviewTrackRes> {
  return request(data, {
    url: '/tempTrack/reviewTrack',
    method: 'post',
    ...config,
  });
}

export interface PostTempTrackInsertTrackRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    0: number;
  };
  traceId: string;
}

/**
 * 插入专辑
 */
export async function postTempTrackInsertTrack(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostTempTrackInsertTrackRes> {
  return request(data, {
    url: '/tempTrack/insertTrack',
    method: 'post',
    ...config,
  });
}

export interface PostTempTrackUpdateTrackInfoRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    0: number;
  };
  traceId: string;
}

/**
 * 替换歌曲ID
 */
export async function postTempTrackUpdateTrackInfo(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostTempTrackUpdateTrackInfoRes> {
  return request(data, {
    url: '/tempTrack/updateTrackInfo',
    method: 'post',
    ...config,
  });
}
